/*
 * Ant Group
 * Copyright (c) 2004-2024 All Rights Reserved.
 */
package com.alipay.zmdepositdemo.service.manage;

import com.alipay.api.domain.AlipayFundAuthOperationDetailQueryModel;
import com.alipay.api.domain.AlipayFundAuthOrderAppFreezeModel;
import com.alipay.api.response.AlipayFundAuthOperationDetailQueryResponse;
import com.alipay.api.response.AlipayFundAuthOrderAppFreezeResponse;
import com.alipay.zmdepositdemo.model.OpenResponse;

/**
 * 免押单管理服务
 *
 * @author zhangjian
 * @version DepositOrderManageService.java, v 0.1 2024年06月17日 14:35 zhangjian
 */
public interface DepositOrderManageService {

    OpenResponse<AlipayFundAuthOrderAppFreezeResponse> createOrder(AlipayFundAuthOrderAppFreezeModel model);

    /**
     * 查询免押订单
     *
     * @param model 请求参数
     * @return 免押订单信息
     */
    OpenResponse<AlipayFundAuthOperationDetailQueryResponse> queryOrder(AlipayFundAuthOperationDetailQueryModel model);

    /**
     * 查询免押订单
     */
    OpenResponse<AlipayFundAuthOperationDetailQueryResponse> queryOrder(String authNo,
                                                                        String outOrderNo,
                                                                        String operationId,
                                                                        String outRequestNo,
                                                                        String operationType);

    /**
     * 取消免押订单
     *
     * @return boolean true 取消免押订单成功
     */
    OpenResponse<Boolean> cancelOrder(String remark,
                                      String authNo,
                                      String outOrderNo,
                                      String operationId,
                                      String outRequestNo);

    /**
     * 同步免押订单信息
     *
     * @return boolean true 同步服务订单信息成功
     */
    OpenResponse<Boolean> syncOrder(String tradeNo,
                                    String outRequestNo,
                                    String bizType,
                                    String origRequestNo,
                                    String orderBizInfo);

    /**
     * 完结免押订单
     *
     * @return boolean true 完结免押订单成功
     */
    OpenResponse<Boolean> finishOrder(String authNo,
                                      String outRequestNo,
                                      String amount,
                                      String remark,
                                      String extraParam);

}